package org.jeecg.modules.innerApi.zhiYunSdApi.requestVo;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.jeecg.modules.innerApi.common.requestDto.CommonParam;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
* @Author: Niugeng
* @Create: 2023/08/30
* @Description：申请全电票红字信息表入参13
*/
@Data
@Builder
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "申请全电票红字信息表入参13")
public class SdSqqdphzxxbrc13Param extends CommonParam implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
    * 销方税号-是-销方税号-
    */
    @ApiModelProperty(value = "销方税号-是-销方税号-")
    @JSONField(name = "xhdwsbh",ordinal = 0)
    private String xhdwsbh;

    /**
    * 发票号码-是-申请红字信息表的发票号码-
    */
    @ApiModelProperty(value = "发票号码-是-申请红字信息表的发票号码-")
    @JSONField(name = "yfphm",ordinal = 1)
    private String yfphm;

    /**
    * 申请红字信息表原因代码-是-
     * 01，开票有误
     * 02，销货退回
     * 03，服务中止
     * 04，销售折让
     * 商品服务编码仅为服务时红冲原因不允许选择“02，销售退回”如原蓝字发票商品服务编码仅为货物或劳务时红冲原因不允许选择“03，服务中止
    */
    @ApiModelProperty(value = "申请红字信息表原因代码")
    @JSONField(name = "chyydm",ordinal = 2)
    private String chyydm;

    /**
    * 申请类型-是-（暂时只支持）销方申请：2：销方全额红冲申请3: 购方全额红冲
    */
    @ApiModelProperty(value = "申请类型-是-（暂时只支持）-")
    @JSONField(name = "sqyy",ordinal = 3)
    private String sqyy;

    //购方申请红字增加以下节点
    @ApiModelProperty(value = "购方纳税人识别号")
    @JSONField(name = "nsrsbh",ordinal = 4)
    private String nsrsbh;

    @ApiModelProperty(value = "原发票开票日期:yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "kprq",ordinal = 4)
    private String kprq;

    @ApiModelProperty(value = "特定要素类型代码:原票有就填")
    @JSONField(name = "tdyslxDm",ordinal = 4)
    private String tdyslxDm;

    //税控开全电票以下必填
    @ApiModelProperty(value = "原发票代码")
    @JSONField(name = "yfpdm",ordinal = 5)
    private String yfpdm;
    /**
    * 发票类型代码-是-026 电子普票 ，028 电子专票-
    */
    @ApiModelProperty(value = "发票类型代码-是-026 电子普票 ，028 电子专票-")
    @JSONField(name = "fplxdm",ordinal = 5)
    private String fplxdm;

    //数电部分冲红以下必填
    @ApiModelProperty(value = "部分冲红标志:值为 1 是部分冲红")
    @JSONField(name = "bfch",ordinal = 5)
    private String bfch;

    @ApiModelProperty(value = "部分冲红总金额")
    @JSONField(name = "hjje",ordinal = 5)
    private BigDecimal hjje;

    @ApiModelProperty(value = "部分冲红总税额")
    @JSONField(name = "hjje",ordinal = 5)
    private BigDecimal hjse;

    /**红字信息申请发票明细**/
    @ApiModelProperty(value = "红字信息申请发票明细")
    private List<SdSqqdphzxxbrc13Param.SdSqqdphzxxbrc13MxParam> fyxm;
    @Data
    @ApiModel(description="部分红冲发票明细")
    public static class SdSqqdphzxxbrc13MxParam{
        /**蓝字商品明细行数，例如开具蓝票第二行商品部分冲红，那么该参数值为2*/
        @ApiModelProperty(value = "蓝字商品明细行数，例如开具蓝票第二行商品部分冲红，那么该参数值为2")
        private Integer xh;
        /**商品数量：冲红的商品数量，负数，冲红原因为04 不需要该参数，如果原票有商品数量，那么开具负数该参数必填*/
        @ApiModelProperty(value = "商品数量")
        private BigDecimal spsl;
        /**冲红的金额，负数*/
        @ApiModelProperty(value = "金额")
        private BigDecimal je;
        /**冲红的金额，负数*/
        @ApiModelProperty(value = "税额")
        private BigDecimal se;
    }
}
